home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / General / GCC 1.37.1r15 / GCC.MPW / Makefile < prev    next >
Makefile  |  1993-03-15  |  14KB  |  398 lines

  1. # GCC Makefile.  Builds all parts of a working MPW GCC.
  2.  
  3. #   Copyright © 1989, 1990 Apple Computer, Inc.
  4.  
  5. # Change this to target GCC to other machines.
  6.  
  7. machine = ::GCC.MPW:
  8.  
  9. # Change this if you want to use a non-"parallel" folder for the common sources.
  10.  
  11. s = ::Sources:
  12.  
  13. t = :Tmp:
  14.  
  15. o = :Obj:
  16.  
  17. g = :Gen:
  18.  
  19. # config.h and tm.h are not normally listed as dependencies, even though most files
  20. # include both of them.  The problem is that they contain both definitions that
  21. # have consequences throughout GCC, and ones that affect only one or two files.
  22. # It's generally more practical to just delete the .o files you know to be affected,
  23. # and rely on CleanGCC to blast everything, but uncommenting this definition will
  24. # add dependencies everywhere that these files are included.
  25.  
  26. Configs =  # "{machine}"config.h "{machine}"tm.h
  27.  
  28. # Set up the default relation between source and object files.
  29.  
  30. "{o}" ƒ : "{s}" "{machine}" "{t}"
  31.  
  32. # The following section is correct for when MPW C compiles GCC, but will be
  33. # modified by a script to do the self-compilation stages.
  34.  
  35. ### Funky Stuff!
  36. # Options for MPW C to compile MPW GCC code.
  37.  
  38. COptions = -mc68020 -mc68881 -b -m -w -d MPW_C -d MPW -i "{s},{machine},{t}"
  39. ### End of Funky Stuff!
  40.  
  41. # Default rule that puts each file into separate segment.
  42.  
  43. .c.o ƒ .c
  44.    {C} {DepDir}{Default}.c {COptions} -s {Default} -o {TargDir}{Default}.c.o
  45.  
  46. # Default rule for a performance-measured file.
  47.  
  48. .c.po ƒ .c
  49.    {C} {DepDir}{Default}.c {COptions} -d PERFORMANCE -s {Default} -o {TargDir}{Default}.c.po
  50.  
  51. # Everything we build in this file is a tool.
  52.  
  53. LinkOptions =  -w -c 'MPS ' -t MPST
  54.  
  55. # Libraries that all of our tools want to use.
  56.  
  57. COMLIBS = ∂
  58.     "{Libraries}"Stubs.o ∂
  59.     "{CLibraries}"CLib881.o ∂
  60.     "{Libraries}"Runtime.o ∂
  61.     "{Libraries}"Interface.o ∂
  62.     "{CLibraries}"StdCLib.o ∂
  63.     "{CLibraries}"CSANELib881.o ∂
  64.     "{CLibraries}"Math881.o ∂
  65.     "{Libraries}"ToolLibs.o
  66.  
  67. DRVOBJECTS = ∂
  68.     "{o}"version.c.o ∂
  69.     "{o}"driver.c.o  
  70.  
  71. "{o}"driver.c.o ƒ "{s}"driver.c
  72.  
  73. driver ƒƒ {DRVOBJECTS}
  74.     Link {LinkOptions} {DRVOBJECTS} {COMLIBS} -o driver
  75.     
  76. driver ƒƒ "{machine}"Versions.r
  77.     Rez -rd -o driver "{machine}"Versions.r -append
  78.  
  79. # C preprocessor stuff.
  80.  
  81. CPPOBJECTS = ∂
  82.     "{o}"cccp.c.o ∂
  83.     "{o}"cexp.c.o ∂
  84.     "{o}"obstack.c.o ∂
  85.     "{o}"alloca.c.o ∂
  86.     "{o}"fopen.c.o ∂
  87.     "{o}"version.c.o
  88.  
  89. "{t}"cexp.c ƒ "{s}"cexp.y
  90.     Bison -o "{t}"cexp.c "{s}"cexp.y
  91.  
  92. "{o}"cccp.c.o ƒ "{s}"cccp.c {Configs}
  93.  
  94. "{o}"cexp.c.o ƒ "{t}"cexp.c {Configs}
  95.  
  96. # Produce the preprocessor program.
  97.  
  98. cpp ƒƒ {CPPOBJECTS}
  99.     Link {LinkOptions} {CPPOBJECTS} {COMLIBS} -o cpp
  100.  
  101. cpp    ƒƒ "{machine}"Versions.r
  102.     Rez -rd -o cpp "{machine}"Versions.r -append
  103.  
  104. # Insn-... C file stuff.
  105.         
  106. COMOBJS = ∂
  107.     "{o}"rtl.c.o ∂
  108.     "{o}"obstack.c.o ∂
  109.     "{o}"alloca.c.o ∂
  110.     "{o}"fopen.c.o
  111.  
  112. # Support routines and libraries for the generating programs.
  113.  
  114. "{o}"gencodes.c.o ƒ "{s}"gencodes.c "{s}"rtl.h {Configs}
  115. "{o}"genconfig.c.o ƒ "{s}"genconfig.c "{s}"rtl.h {Configs}
  116. "{o}"genemit.c.o ƒ "{s}"genemit.c "{s}"rtl.h {Configs}
  117. "{o}"genextract.c.o ƒ "{s}"genextract.c "{s}"rtl.h {Configs}
  118. "{o}"genflags.c.o ƒ "{s}"genflags.c "{s}"rtl.h {Configs}
  119. "{o}"genoutput.c.o ƒ "{s}"genoutput.c "{s}"rtl.h {Configs}
  120. "{o}"genpeep.c.o ƒ "{s}"genpeep.c "{s}"rtl.h {Configs}
  121. "{o}"genrecog.c.o ƒ "{s}"genrecog.c "{s}"rtl.h {Configs}
  122.  
  123. # How to build the programs themselves.
  124.      
  125. "{g}"gencodes ƒ "{o}"gencodes.c.o {COMOBJS}
  126.     Link {LinkOptions} "{o}"gencodes.c.o {COMOBJS} {COMLIBS} -o "{g}"gencodes
  127.      
  128. "{g}"genconfig ƒ "{o}"genconfig.c.o {COMOBJS}
  129.     Link {LinkOptions} "{o}"genconfig.c.o {COMOBJS} {COMLIBS} -o "{g}"genconfig
  130.      
  131. "{g}"genemit ƒ "{o}"genemit.c.o {COMOBJS}
  132.     Link {LinkOptions} "{o}"genemit.c.o {COMOBJS} {COMLIBS} -o "{g}"genemit
  133.      
  134. "{g}"genextract ƒ "{o}"genextract.c.o {COMOBJS}
  135.     Link {LinkOptions} "{o}"genextract.c.o {COMOBJS} {COMLIBS} -o "{g}"genextract
  136.      
  137. "{g}"genflags ƒ "{o}"genflags.c.o {COMOBJS}
  138.     Link {LinkOptions} "{o}"genflags.c.o {COMOBJS} {COMLIBS} -o "{g}"genflags
  139.      
  140. "{g}"genoutput ƒ "{o}"genoutput.c.o {COMOBJS}
  141.     Link {LinkOptions} "{o}"genoutput.c.o {COMOBJS} {COMLIBS} -o "{g}"genoutput
  142.      
  143. "{g}"genpeep ƒ "{o}"genpeep.c.o {COMOBJS}
  144.     Link {LinkOptions} "{o}"genpeep.c.o {COMOBJS} {COMLIBS} -o "{g}"genpeep
  145.      
  146. "{g}"genrecog ƒ "{o}"genrecog.c.o {COMOBJS}
  147.     Link {LinkOptions} "{o}"genrecog.c.o {COMOBJS} {COMLIBS} -o "{g}"genrecog
  148.  
  149. # The machine-specific C files are dependent on both the machine description
  150. # and the gen... programs, but MPW makefiles only calculate dependencies once
  151. # before building, so we take "md" out of explicit dependencies and make the
  152. # "insn" target for it instead (see below).
  153.  
  154. "{t}"insn-codes.h  ƒ  "{g}"gencodes
  155.      "{g}"gencodes "{machine}"md >"{t}"insn-codes.h
  156.  
  157. "{t}"insn-config.h  ƒ  "{g}"genconfig
  158.      "{g}"genconfig "{machine}"md >"{t}"insn-config.h     
  159.  
  160. "{t}"insn-emit.c  ƒ  "{g}"genemit
  161.      "{g}"genemit "{machine}"md >"{t}"insn-emit.c
  162.  
  163. "{t}"insn-extract.c  ƒ  "{g}"genextract
  164.      "{g}"genextract "{machine}"md >"{t}"insn-extract.c
  165.  
  166. "{t}"insn-flags.h  ƒ  "{g}"genflags
  167.      "{g}"genflags "{machine}"md >"{t}"insn-flags.h
  168.  
  169. "{t}"insn-output.c  ƒ  "{g}"genoutput
  170.      "{g}"genoutput "{machine}"md >"{t}"insn-output.c
  171.  
  172. "{t}"insn-peep.c   ƒ  "{g}"genpeep
  173.      "{g}"genpeep "{machine}"md >"{t}"insn-peep.c
  174.  
  175. "{t}"insn-recog.c  ƒ  "{g}"genrecog
  176.      "{g}"genrecog "{machine}"md >"{t}"insn-recog.c
  177.  
  178. # Generate all the derived files from md, but only update them if the contents are
  179. # actually different (often they're not).  This should be run after md is updated,
  180. # then making cc1 will only do the minimum build necessary.
  181.  
  182. insn  ƒ  "{machine}"md
  183.      "{g}"gencodes "{machine}"md >"{t}"tmp-insn-codes.h
  184.      MoveIfChange "{t}"tmp-insn-codes.h "{t}"insn-codes.h
  185.      "{g}"genconfig "{machine}"md >"{t}"tmp-insn-config.h     
  186.      MoveIfChange "{t}"tmp-insn-config.h "{t}"insn-config.h
  187.      "{g}"genemit "{machine}"md >"{t}"tmp-insn-emit.c
  188.      MoveIfChange "{t}"tmp-insn-emit.c "{t}"insn-emit.c
  189.      "{g}"genextract "{machine}"md >"{t}"tmp-insn-extract.c
  190.      MoveIfChange "{t}"tmp-insn-extract.c "{t}"insn-extract.c
  191.      "{g}"genflags "{machine}"md >"{t}"tmp-insn-flags.h
  192.      MoveIfChange "{t}"tmp-insn-flags.h "{t}"insn-flags.h
  193.      "{g}"genoutput "{machine}"md >"{t}"tmp-insn-output.c
  194.      MoveIfChange "{t}"tmp-insn-output.c "{t}"insn-output.c
  195.      "{g}"genpeep "{machine}"md >"{t}"tmp-insn-peep.c
  196.      MoveIfChange "{t}"tmp-insn-peep.c "{t}"insn-peep.c
  197.      "{g}"genrecog "{machine}"md >"{t}"tmp-insn-recog.c
  198.      MoveIfChange "{t}"tmp-insn-recog.c "{t}"insn-recog.c
  199.  
  200. # Main C compiler stuff.
  201.  
  202. CC1OBJECTS = ∂
  203.         "{o}"alloca.c.o ∂
  204.         "{o}"c-convert.c.o ∂
  205.         "{o}"c-decl.c.o ∂
  206.         "{o}"c-parse.tab.c.o ∂
  207.         "{o}"c-typeck.c.o ∂
  208.         "{o}"caller-save.c.o ∂
  209.         "{o}"combine.c.o ∂
  210.         "{o}"cse.c.o ∂
  211.         "{o}"dbranch.c.o ∂
  212.         "{o}"emit-rtl.c.o ∂
  213.         "{o}"explow.c.o ∂
  214.         "{o}"expmed.c.o ∂
  215.         "{o}"expr.c.o ∂
  216.         "{o}"final.c.o ∂
  217.         "{o}"flow.c.o ∂
  218.         "{o}"fold-const.c.o ∂
  219.         "{o}"fopen.c.o ∂
  220.         "{o}"global-alloc.c.o ∂
  221.         "{o}"insn-emit.c.o ∂
  222.         "{o}"insn-extract.c.o ∂
  223.         "{o}"insn-output.c.o ∂
  224.         "{o}"insn-peep.c.o ∂
  225.         "{o}"insn-recog.c.o ∂
  226.         "{o}"integrate.c.o ∂
  227.         "{o}"jump.c.o ∂
  228.         "{o}"local-alloc.c.o ∂
  229.         "{o}"loop.c.o ∂
  230.         "{o}"obstack.c.o ∂
  231.         "{o}"optabs.c.o ∂
  232.         "{o}"print-tree.c.o ∂
  233.         "{o}"recog.c.o ∂
  234.         "{o}"regclass.c.o ∂
  235.         "{o}"reload.c.o ∂
  236.         "{o}"reload1.c.o ∂
  237.         "{o}"rtl.c.o ∂
  238.         "{o}"rtlanal.c.o ∂
  239.         "{o}"stmt.c.o ∂
  240.         "{o}"stor-layout.c.o ∂
  241.         "{o}"stupid.c.o ∂
  242.         "{o}"parameter.c.o ∂
  243. # Two version of toplev (regular and perf), so mentioned elsewhere ∂
  244. #        "{o}"toplev.c.o ∂
  245.         "{o}"tree.c.o ∂
  246.         "{o}"varasm.c.o ∂
  247.         "{o}"version.c.o
  248.  
  249. # Bison (not yacc) is needed to build the C parser.
  250.  
  251. "{t}"c-parse.tab.c ƒ "{s}"c-parse.y
  252.    Bison -v -o "{t}"c-parse.tab.c "{s}"c-parse.y
  253.  
  254. # Massive dependencies.
  255.  
  256. "{o}"parameter.c.o ƒ ∂
  257.     "{s}"parameter.c "{s}"obstack.h {Configs}
  258. "{o}"c-convert.c.o ƒ ∂
  259.     "{s}"c-convert.c "{s}"tree.h {Configs}
  260. "{o}"c-decl.c.o ƒ ∂
  261.     "{s}"c-decl.c "{s}"tree.h "{s}"flags.h "{s}"c-tree.h "{s}"c-parse.h {Configs}
  262. "{o}"c-parse.tab.c.o ƒ ∂
  263.     "{t}"c-parse.tab.c "{s}"tree.h "{s}"real.h "{s}"input.h "{s}"c-parse.h ∂
  264.     "{s}"c-tree.h {Configs}
  265. "{o}"c-typeck.c.o ƒ ∂
  266.     "{s}"c-typeck.c "{s}"tree.h "{s}"c-tree.h "{s}"flags.h {Configs}
  267. "{o}"caller-save.c.o ƒ ∂
  268.     "{s}"caller-save.c "{s}"rtl.h "{t}"insn-config.h "{s}"flags.h "{s}"regs.h ∂
  269.     "{s}"hard-reg-set.h "{s}"reload.h "{s}"recog.h "{s}"basic-block.h {Configs}
  270. "{o}"combine.c.o ƒ ∂
  271.     "{s}"combine.c "{s}"rtl.h "{s}"flags.h "{s}"regs.h "{s}"basic-block.h ∂
  272.     "{t}"insn-config.h "{s}"recog.h {Configs}
  273. "{o}"cse.c.o ƒ ∂
  274.     "{s}"cse.c "{s}"rtl.h "{s}"regs.h "{s}"hard-reg-set.h "{s}"flags.h "{s}"real.h {Configs}
  275. "{o}"dbranch.c.o ƒ ∂
  276.     "{s}"dbranch.c "{s}"rtl.h "{s}"hard-reg-set.h "{s}"flags.h {Configs}
  277. "{o}"dbxout.c.o ƒ ∂
  278.     "{s}"dbxout.c "{s}"tree.h "{s}"rtl.h "{s}"rtl.def "{s}"flags.h {Configs}
  279. "{o}"emit-rtl.c.o ƒ ∂
  280.     "{s}"gvarargs.h "{s}"rtl.h "{s}"regs.h "{t}"insn-config.h "{s}"real.h {Configs}
  281. "{o}"explow.c.o ƒ ∂
  282.     "{s}"explow.c "{s}"rtl.h "{s}"tree.h "{s}"tree.def "{s}"real.h "{s}"flags.h ∂
  283.     "{s}"expr.h "{t}"insn-codes.h {Configs}
  284. "{o}"expmed.c.o ƒ ∂
  285.     "{s}"rtl.h "{s}"tree.h "{s}"tree.def "{s}"real.h "{s}"flags.h "{t}"insn-flags.h ∂
  286.     "{t}"insn-codes.h "{t}"insn-config.h "{s}"expr.h "{s}"recog.h {Configs}
  287. "{o}"expr.c.o ƒ ∂
  288.     "{s}"rtl.h "{s}"tree.h "{s}"flags.h "{t}"insn-flags.h "{t}"insn-codes.h "{s}"expr.h ∂
  289.     "{t}"insn-config.h "{s}"recog.h "{s}"gvarargs.h "{s}"typeclass.h {Configs}
  290. "{o}"final.c.o ƒ ∂
  291.     "{s}"final.c "{s}"rtl.h "{s}"regs.h "{t}"insn-config.h "{s}"recog.h ∂
  292.     "{s}"conditions.h "{s}"gdbfiles.h "{s}"flags.h "{s}"real.h "{s}"output.h {Configs}
  293. "{o}"flow.c.o ƒ ∂
  294.     "{s}"flow.c "{s}"rtl.h "{s}"basic-block.h "{s}"regs.h "{s}"hard-reg-set.h ∂
  295.     "{s}"flags.h "{s}"obstack.h {Configs}
  296. "{o}"fold-const.c.o ƒ ∂
  297.     "{s}"fold-const.c "{s}"tree.h {Configs}
  298. "{o}"global-alloc.c.o ƒ ∂
  299.     "{s}"global-alloc.c "{s}"rtl.h "{s}"flags.h "{s}"basic-block.h ∂
  300.     "{s}"hard-reg-set.h "{s}"regs.h "{t}"insn-config.h {Configs}
  301. "{o}"insn-emit.c.o ƒ ∂
  302.     "{t}"insn-emit.c "{s}"rtl.h "{s}"expr.h "{t}"insn-codes.h "{s}"real.h ∂
  303.     "{t}"insn-config.h "{t}"insn-flags.h {Configs}
  304. "{o}"insn-extract.c.o ƒ ∂
  305.     "{t}"insn-extract.c "{s}"rtl.h {Configs}
  306. "{o}"insn-output.c.o ƒ ∂
  307.     "{t}"insn-output.c "{s}"rtl.h "{s}"regs.h "{s}"hard-reg-set.h "{s}"real.h ∂
  308.     "{s}"conditions.h "{t}"insn-flags.h "{t}"insn-config.h "{s}"output.h "{machine}"aux-output.c {Configs}
  309. "{o}"insn-peep.c.o ƒ ∂
  310.     "{t}"insn-peep.c "{s}"rtl.h "{s}"regs.h "{s}"real.h {Configs}
  311. "{o}"insn-recog.c.o ƒ ∂
  312.     "{t}"insn-recog.c "{s}"rtl.h "{t}"insn-config.h "{s}"recog.h "{s}"real.h {Configs}
  313. "{o}"integrate.c.o ƒ ∂
  314.     "{s}"integrate.c "{s}"rtl.h "{s}"tree.h "{s}"tree.def "{s}"real.h ∂
  315.     "{s}"flags.h "{t}"insn-flags.h "{s}"expr.h "{t}"insn-codes.h "{s}"obstack.h {Configs}
  316. "{o}"jump.c.o ƒ ∂
  317.     "{s}"jump.c "{s}"rtl.h "{s}"flags.h "{s}"regs.h {Configs}
  318. "{o}"local-alloc.c.o ƒ ∂
  319.     "{s}"local-alloc.c "{s}"rtl.h "{s}"flags.h "{s}"basic-block.h ∂
  320.     "{s}"regs.h "{s}"hard-reg-set.h "{t}"insn-config.h "{s}"recog.h {Configs}
  321. "{o}"loop.c.o ƒ ∂
  322.     "{s}"loop.c "{s}"rtl.h "{s}"expr.h "{t}"insn-codes.h "{t}"insn-config.h "{s}"regs.h ∂
  323.     "{s}"hard-reg-set.h "{s}"recog.h "{s}"flags.h {Configs}
  324. "{o}"obstack.c.o ƒ ∂
  325.     "{s}"obstack.c "{s}"obstack.h
  326. "{o}"optabs.c.o ƒ ∂
  327.     "{s}"optabs.c "{s}"rtl.h "{s}"tree.h "{s}"tree.def "{s}"real.h "{s}"flags.h ∂
  328.     "{t}"insn-flags.h "{t}"insn-codes.h "{s}"expr.h "{t}"insn-config.h "{s}"recog.h {Configs}
  329. "{o}"print-tree.c.o ƒ ∂
  330.     "{s}"print-tree.c "{s}"tree.h {Configs}
  331. "{o}"recog.c.o ƒ ∂
  332.     "{s}"recog.c "{s}"rtl.h "{t}"insn-config.h "{s}"recog.h "{s}"regs.h ∂
  333.     "{s}"hard-reg-set.h "{s}"real.h {Configs}
  334. "{o}"regclass.c.o ƒ ∂
  335.     "{s}"regclass.c "{s}"rtl.h "{s}"hard-reg-set.h "{s}"flags.h ∂
  336.     "{s}"basic-block.h "{s}"regs.h "{t}"insn-config.h "{s}"recog.h {Configs}
  337. "{o}"reload.c.o ƒ ∂
  338.     "{s}"reload.c "{s}"rtl.h "{t}"insn-config.h "{s}"recog.h "{s}"reload.h ∂
  339.     "{s}"regs.h "{s}"hard-reg-set.h "{s}"flags.h "{s}"real.h {Configs}
  340. "{o}"reload1.c.o ƒ ∂
  341.     "{s}"reload1.c "{s}"rtl.h "{t}"insn-config.h "{s}"flags.h "{s}"regs.h ∂
  342.     "{s}"hard-reg-set.h "{s}"reload.h "{s}"recog.h "{s}"basic-block.h {Configs}
  343. "{o}"rtl.c.o ƒ ∂
  344.     "{s}"rtl.c "{s}"rtl.h "{s}"obstack.h {Configs}
  345. "{o}"rtlanal.c.o ƒ ∂
  346.     "{s}"rtlanal.c "{s}"rtl.h {Configs}
  347. "{o}"sdbout.c.o ƒ ∂
  348.     "{s}"sdbout.c {Configs}
  349. "{o}"stmt.c.o ƒ ∂
  350.     "{s}"stmt.c "{s}"rtl.h "{s}"tree.h "{s}"flags.h "{t}"insn-flags.h "{t}"insn-config.h ∂
  351.     "{s}"expr.h "{t}"insn-codes.h "{s}"regs.h "{s}"hard-reg-set.h {Configs}
  352. "{o}"stor-layout.c.o ƒ ∂
  353.     "{s}"stor-layout.c "{s}"tree.h "{s}"rtl.h {Configs}
  354. "{o}"stupid.c.o ƒ ∂
  355.     "{s}"stupid.c "{s}"rtl.h "{s}"hard-reg-set.h "{s}"regs.h {Configs}
  356. "{o}"symout.c.o ƒ ∂
  357.     "{s}"symout.c "{s}"tree.h "{s}"symseg.h "{s}"rtl.h "{s}"gdbfiles.h {Configs}
  358. "{o}"toplev.c.o ƒ ∂
  359.     "{s}"toplev.c "{s}"input.h "{s}"tree.h "{s}"c-tree.h "{s}"rtl.h "{s}"flags.h {Configs}
  360. "{o}"tree.c.o ƒ ∂
  361.     "{s}"tree.c "{s}"tree.h "{s}"obstack.h "{s}"gvarargs.h "{s}"flags.h {Configs}
  362. "{o}"varasm.c.o ƒ ∂
  363.     "{s}"varasm.c "{s}"rtl.h "{s}"tree.h "{s}"tree.def "{s}"real.h "{s}"flags.h ∂
  364.     "{s}"expr.h "{t}"insn-codes.h "{s}"hard-reg-set.h "{s}"obstack.h {Configs}
  365.  
  366. # Link GCC itself.
  367.  
  368. cc1 ƒƒ "{o}"toplev.c.o {CC1OBJECTS}
  369.     Link {LinkOptions} "{o}"toplev.c.o {CC1OBJECTS} ∂
  370.          {COMLIBS} ∂
  371.          -o cc1
  372.  
  373. cc1    ƒƒ "{machine}"Versions.r
  374.     Rez -rd -o cc1 "{machine}"Versions.r -append
  375.  
  376. # Build a performance measurement version.  Toplev is the only file that has any
  377. # calls to perf functions.
  378.  
  379. cc1p ƒƒ "{o}"toplev.c.po {CC1OBJECTS}
  380.     Link {LinkOptions} -l >LinkMap "{o}"toplev.c.po {CC1OBJECTS} ∂
  381.          "{Libraries}"Performlib.o {COMLIBS} ∂
  382.          -o cc1p
  383.          
  384. cc1p    ƒƒ "{machine}"Versions.r
  385.     Rez -rd -o cc1p "{machine}"Versions.r -append
  386.  
  387. SHORTENOBJECTS = ∂
  388.     "{o}"shorten.c.o  
  389.  
  390. "{o}"shorten.c.o ƒ "{s}"shorten.c
  391.  
  392. shorten ƒƒ {SHORTENOBJECTS}
  393.     Link {LinkOptions} {SHORTENOBJECTS} {COMLIBS} -o shorten
  394.     
  395. shorten ƒƒ "{machine}"Versions.r
  396.     Rez -rd -o shorten "{machine}"Versions.r -append
  397.  
  398.